package com.shoulder.boot.acl.dto;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 客户端信息添加请求体
 */
@Data
public class ClientAddDTO {

    /**
     * 客户端id
     */
    @NotEmpty(message = "客户端id不能为空")
    private String clientId;

    /**
     * 密钥
     */
    @NotEmpty(message = "密钥不能为空")
    private String clientSecret;

    /**
     * 认证方式
     */
    @NotEmpty(message = "认证方式不能为空")
    private List<String> clientAuthenticationMethods;

    /**
     * 授权方式
     */
    @NotEmpty(message = "授权方式不能为空")
    private List<String> authorizationGrantTypes;

    /**
     * 回调地址
     */
    private String redirectUri;

    /**
     * 授权范围
     */
    @NotEmpty(message = "授权范围不能为空")
    private String scopes;

    /**
     * 授权确认
     */
    private Boolean requireAuthorizationConsent = true;

    /**
     * accessToken有效期
     */
    @NotNull(message = "accessToken有效期不能为空")
    private Integer tokenValidTime;

    /**
     * refreshToken有效期
     */
    @NotNull(message = "refreshToken有效期不能为空")
    private Integer refreshTokenValidTime;

}
